#include "../mqserver/mq_queue.hpp"
#include "../mqcommon/mq_helper.hpp"
#include <gtest/gtest.h>

// wsmq::MsgQueueManager::ptr msmp;

// class QueueTest : public testing::Environment
// {
// public:
//     virtual void SetUp() override
//     {
//         msmp = std::make_shared<wsmq::MsgQueueManager>("./data/meta.db");
//     }
//     virtual void TearDown() override
//     {
//         wsmq::FileHelper::removeDirectory("./data/meta.db");
//         // msmp->clear();
//     }
// };

// TEST(queue_test, insert_test)
// {
//     std::unordered_map<std::string, std::string> map;
//     map["k1"] = "v1";
//     msmp->declareQueue("queue1", true, false, false, map);
//     msmp->declareQueue("queue2", true, false, false, map);
//     msmp->declareQueue("queue3", true, false, false, map);
//     msmp->declareQueue("queue4", true, false, false, map);
//     ASSERT_EQ(msmp->size(), 4);
// }

// TEST(queue_test, delete_test)
// {
//     // msmp->removeQueue("queue2");
//     // ASSERT_EQ(msmp->size(), 3);
// }

// TEST(queue_test, select_test)
// {
//     ASSERT_EQ(msmp->exists("queue1"), true);
//     ASSERT_EQ(msmp->exists("queue2"), true);
//     ASSERT_EQ(msmp->exists("queue3"), true);
//     ASSERT_EQ(msmp->exists("queue4"), true);
//     wsmq::MsgQueue::ptr msp = msmp->selectMsgQueue("queue1");
//     ASSERT_EQ(msp->_name, "queue1");
//     ASSERT_EQ(msp->_durable, 1);
//     ASSERT_EQ(msp->_exclusive, 0);
//     ASSERT_EQ(msp->_auto_delete, 0);
//     ASSERT_EQ(msp->getArgs(), "k1=v1&");

// }

int main(int argc, char* argv[])
{
    testing::InitGoogleTest(&argc, argv);
    // testing::AddGlobalTestEnvironment(new QueueTest);
    return RUN_ALL_TESTS();
}